#pragma once

#include <vector>
#include <string>
#include "http.h"
#include "http_headers.h"
#include "sock/text_socket.h"

class HttpReply {
public:
	// constructors.
	HttpReply();
	virtual ~HttpReply();
	
	// member-functions.
	void send( sock::TextSocket * psock );
	http::Headers headers;
protected:

	// member-functions.
	void status_code( HttpStatusCode status_code );
	virtual void send_body( sock::ClientSocket & sock ) = 0;
	
	// members.
	
private:
	// types
	typedef std::vector<std::string> Headers;

	// members.
	Headers _headers;
	HttpStatusCode _status_code;
};
